// 字符串
// 常见题型- 找最长公共前缀 - 统一对比

// 例题 1：
// 编写一个函数来查找字符串数组中的最长公共前缀。
//
//        如果不存在公共前缀，返回空字符串 ""。
//
//        示例 1：
//
//        输入：strs = ["flower","flow","flight"]
//        输出："fl"
//        示例 2：
//
//        输入：strs = ["dog","racecar","car"]
//        输出：""
//        解释：输入不存在公共前缀。
//
//
//        提示：
//
//        1 <= strs.length <= 200
//        0 <= strs[i].length <= 200
//        strs[i] 如果非空，则仅由小写英文字母组成

// 解题思路：
// 先找到最小长度的字符串的长度 minLen
// 在 0 ~ minLen 个字符范围内比较所有字符串，遇到不相等的就返回结果
// 如果全都相等，就返回 0 ~ minLen 区间的子串

public class LongestCommonPrefix {
    public String longestCommonPrefix(String[] strs) {
        int n = strs.length;
        int minLen = strs[0].length();
        for(int i = 1; i < n; i++) minLen = Math.min(minLen, strs[i].length());
        for(int i = 0; i < minLen; i++){
            char t = strs[0].charAt(i);
            for(int j = 1; j < n; j++){
                if(t != strs[j].charAt(i)) return strs[0].substring(0, i);
            }
        }
        return strs[0].substring(0, minLen);
    }
}